//给定一个排序数组和一个目标值，在数组中找到目标值，并返回其索引。如果目标值不存在于数组中，返回它将会被按顺序插入的位置。 
//
// 你可以假设数组中无重复元素。 
//
// 示例 1: 
//
// 输入: [1,3,5,6], 5
//输出: 2
// 
//
// 示例 2: 
//
// 输入: [1,3,5,6], 2
//输出: 1
// 
//
// 示例 3: 
//
// 输入: [1,3,5,6], 7
//输出: 4
// 
//
// 示例 4: 
//
// 输入: [1,3,5,6], 0
//输出: 0
// 
// Related Topics 数组 二分查找 
// 👍 668 👎 0


package leetcode.editor.cn;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

//Java：搜索插入位置
public class P35SearchInsertPosition{
    public static void main(String[] args) {
        Solution solution = new P35SearchInsertPosition().new Solution();
        // TO TEST
        System.out.println(solution.searchInsert(new int[]{1,3},1));
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int searchInsert(int[] nums, int target) {
        List<Integer> list = new ArrayList<Integer>();
        for (int i : nums){
            list.add(i);
        }
        if ( Arrays.binarySearch(nums,target) >=0 ){
            return Arrays.binarySearch(nums,target);
        }
        list.add(target);
        Integer[] last = new Integer[nums.length+1];
        list.toArray(last);
        Arrays.sort(last);
        int index = Arrays.binarySearch(last,target);
        return index;
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}